
$(function() {
    
    aumentarSpanOpciones();
    maskAttributes();
//prevenirEnter() ;
    //timer  
    $('select').change(function() {
        $(this).siblings('.select2-container').children('a.select2-choice').blur();
    });

    var Example1 = new (function() {
        // Stopwatch element on the page
        var $stopwatch;
        // Timer speed in milliseconds
        var incrementTime = 70;
        // Current timer position in milliseconds
        var currentTime = 0;
        // Start the timer
        $(function() {
            $stopwatch = $('#stopwatch');
            Example1.Timer = $.timer(updateTimer, incrementTime, true);
        });
        // Output time and increment
        function updateTimer() {
            var timeString = formatTime(currentTime);
            $stopwatch.html(timeString);
            currentTime += incrementTime;
        }
        // Reset timer
        this.resetStopwatch = function() {
            currentTime = 0;
            Example1.Timer.stop().once();
        };
    });




    $seccionHeader = $('#seccionHeaderPrincipal');
    $(document).unbind('keydown');
     $(document).bind('keydown', function(e) {
        if (e.which == 9) {
            event.preventDefault();
            return false;
        }
        if (msg == 0)
        {
            if (cont < contador)
            {
                if (e.which == 39 || e.which == 13)
                {
                    AjaxAtualizacionInformacion("#nosey-form", Example1);
                    event.preventDefault();
                }
                if (e.which == 37)
                {
                    if (cont < contador) {

                        preguntaAnterior();
                        event.preventDefault();

                    }
                    event.preventDefault();

                }

                seleccionarOpcionTeclado(e.which);
            }
        }
        if (msg == 1)
        {
            if (e.which == 39 || e.which == 13)
            {
                $('#iniciarEncuestaModal').click();
                msg = 0;
            }
        }
        });


    if (msg == 1) {
//          $seccionHeader.html($('#pregunta').parent().attr('id'))
        $('#iniciarEncuestaModal').toggle();
        $('div#pregunta').toggle();
        $('#pregunta').animate({
            'margin-left': '',
//         'height':'toggle'
        }, 1000);
//        msg = 0;
//        
    }
    else
    {
        $('#next').toggle();
        $seccionHeader.html($('#pregunta0').parent().attr('id'))
        $('div#pregunta' + 0).toggle();
        $('#pregunta0').animate({
            'margin-left': '',
//         'height':'toggle'
        }, 1000, function() {
            $('[tabindex=0]').focus();
            quitarFocusRating(this);
        });

        descripcionPregunta();
    }

    $('#next').on('click', function() {
        AjaxAtualizacionInformacion("#nosey-form", Example1);
    });

    $('#iniciarEncuestaModal').on('click', function() {
//          $('#next').toggle();
        $('#pregunta').animate({
            'margin-left': '70%',
            'height': 'toggle'
        }, 1000, function() {
        });

        $('#next').toggle();
        $seccionHeader.html($('#pregunta0').parent().attr('id'))
        $('div#pregunta' + 0).toggle();
        $('#pregunta0').animate({
            'margin-left': '',
//         'height':'toggle'
        }, 1000, function() {
            quitarFocusRating(this);
            $('[tabindex=0]').focus();

        });

        descripcionPregunta();

        $('#iniciarEncuestaModal').toggle();
        msg = 0;

    });

    $('#prev').on('click', function() {

        preguntaAnterior();
    });

    $('#finalizarEncuestaModal').on('click', function() {

        cont = 0;

    });

});



var letras = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
var cont = 0;
var contador;
var porcentaje;
var msg;
var Example1;


/**
 * @author Alex Yepez <ayepez@tradesystem.com.ec>
 * @param {type} Formulario
 * guarda los _form_modal por ajax para contacto, tarea, oportunidad, evento y cobranza
 */
function AjaxAtualizacionInformacion(Formulario, timer)
{
//    BloquearBotonesModal(Formulario);
    ajaxHasError({url: $(Formulario).attr('action'), data: $(Formulario).serialize(),
        errorCall: function(data) {
            if (data.data != '')
            {
                erroresFormulario(data, Formulario);
            }
            else
            {
                erroresFormulario(data, Formulario, true);
            }

            if (cont == contador)
            {

                var listaActualizar = Formulario.split('-');
                listaActualizar = listaActualizar[0] + '-grid';
                ajaxHasError({url: $(Formulario).attr('action') + '/validador/' + true, data: $(Formulario).serialize(),
                });

                $('a#prev').toggle();
                $('a#next').toggle();
//                $('a#finalizarEncuestaModal').toggle('slow');
                $('div.bar').css('background-image', 'linear-gradient(rgba(99, 206, 129, 1), rgb(57, 199, 52))')

                timer.Timer.stop();
                $('#tiempoEncuesta').text($('#stopwatch').text());

            }
            if (cont > contador) {
//                $('#mainModal').modal('hide');
//
//                bootbox.alert('Formulario guardado con exito!');
//                $('.modal-body').css('margin', '0px');
//                cont = 0;
            }

        }
    });
}
var offsetSuma = 0;
function preguntaEncuestaNext(Formulario) {
    if ($('div#pregunta' + cont + '> .control-group').hasClass('error'))
    {

    }
    else
    {

        preguntaSiguiente(cont);
        cont++;
        if (cont == 1) {
            $('a#prev').removeClass('hidden');
        }


        if (cont <= contador)
        {
            $('div#pregunta' + cont).removeClass('hidden');
//            offsetSuma += $('div.nsy_form_row#pregunta' + cont).offset().top;
            encerarErrores(Formulario);
            progressBarNosey();
        }


    }



}

function progressBarNosey() {
    porcentaje = Math.round((cont * 100) / contador);
    $('.bar').attr('aria-valuenow', porcentaje);
    $('.bar').css('width', porcentaje + '%');
    $('.bar').html(porcentaje + '%')

}
function encerarErrores(Formulario) {
    $inputs = ($(Formulario + ' input '));
    $selects = ($(Formulario + ' select '));
    $textAreas = ($(Formulario + ' textarea '));

    $textAreas.each(function(element, valor) {
        divControlGroup = $(valor).parent().parent('.control-group');
        divControlGroup.removeClass('success');
        divControlGroup.removeClass('error');
        $(Formulario + ' span.help-inline').html('');
    });

    $inputs.each(function(element, valor) {
        if ($(valor).parent().has('label')) {
            divControlGroup = $(valor).parent().parent().parent('.control-group');
            divControlGroup.removeClass('success');
            divControlGroup.removeClass('error');
            $(Formulario + ' span.help-inline').html('');
        }
        divControlGroup = $(valor).parent().parent('.control-group');
        divControlGroup.removeClass('success');
        divControlGroup.removeClass('error');
        $(Formulario + ' span.help-inline').html('');
    });
    $selects.each(function(element, valor) {
        divControlGroup = $(valor).parent().parent('.control-group');
        divControlGroup.removeClass('success');
        divControlGroup.removeClass('error');
        $(Formulario + ' span.help-inline').html('');
    });


}



/**
 * @author Alex Yepez <ayepez@tradesystem.com.ec>
 * consulta si los datos tiene errores
 * @param {type} Formulario
 * @returns {undefined}
 */
function ajaxHasError(options) {
    $.ajax({
        type: "POST",
        dataType: 'json',
        url: options.url,
        data: options.data,
        beforeSend: function(xhr) {
        },
        success: function(data) {
            if (data.success) {

                if (options.SuccessCall)
                {
                    options.SuccessCall(data);
                }

            } else {
//                if(cont<contador)
                {
                    options.errorCall(data);
                }

            }
        }

    });
}


function erroresFormulario(data, Formulario, validador) {
//    DesBloquearBotonesModal(Formulario, ' Crear', 'AjaxAtualizacionInformacion');
    encerarErrores(Formulario);
//     
    if (!validador)
    {
        $.each(data.data, function(index, element) {
            $("select#DynamicFormModel_" + index).parent().parent('.control-group').addClass('error');
            $('#DynamicFormModel_' + index + '_em_').css('display', '');
            $('#DynamicFormModel_' + index + '_em_').html(element);

        });
        $.each(data.data, function(index, element) {

            $("textarea#DynamicFormModel_" + index).parent().parent('.control-group').addClass('error');
            $('#DynamicFormModel_' + index + '_em_').css('display', '');
            $('#DynamicFormModel_' + index + '_em_').html(element);

        });
        $.each(data.data, function(index, element) {
            $("input[name='DynamicFormModel[" + index + "]'] ").parent().parent('.control-group').addClass('error');
            if ($("input[name='DynamicFormModel[" + index + "]'] ").parent().hasClass('checkbox'))
            {
                $("input[name='DynamicFormModel[" + index + "]'] ").parent().parent().parent('.control-group').addClass('error');
            }
            $('#DynamicFormModel_' + index + '_em_').css('display', '');
            $('#DynamicFormModel_' + index + '_em_').html(element);

        });
    }



    preguntaEncuestaNext(Formulario);

}

function scrollWin(div) {
    $('html,body').animate({
        scrollTop: 0
    }, 2000);
}

function preguntaSiguiente(cont) {
    $('[tabindex=' + cont + ']').blur();
    cerrarSelect2Row();

    $('.datepicker').hide();
    $('#pregunta' + cont).animate({
        'margin-left': '70%',
        'height': 'toggle'
    }, 1000, function() {
        $('.datepicker').hide();
        $('[tabindex=' + cont + ']').blur();
        descripcionPregunta();
    });

    cont++;
    $('#pregunta' + cont).animate({
        'margin-left': '',
        'height': 'toggle'
    }, 1000, function() {
        quitarFocusRating(this);
        $('[tabindex=' + cont + ']').focus();
        descripcionPregunta();

    });

    $seccionHeader.html($('#pregunta' + cont).parent().attr('id'));
    if (cont == contador)
    {
        $seccionHeader.html('');
    }
//    descripcionPregunta();

}
function preguntaAnterior() {

    $('[tabindex=' + cont + ']').blur();
    cerrarSelect2Row();
    $('.datepicker').hide();

    if (cont > 0) {
//           $('select').select2('close');
        $('[tabindex=' + cont + ']').blur();
        $('#pregunta' + cont).animate({
            'margin-left': '-28%',
            'height': 'toggle'
        }, 1000, function() {

            $('[tabindex=' + cont + ']').blur();
            cerrarSelect2Row();
            descripcionPregunta();

        });


        cont--;

        $('#pregunta' + cont).animate({
            'margin-left': '',
            'height': 'toggle'
        }, 1000, function() {
//             $('.datepicker').hide();
            quitarFocusRating(this);
            $('[tabindex=' + cont + ']').focus();
            descripcionPregunta();
        });
        $seccionHeader.html($('#pregunta' + cont).parent().attr('id'));

    }
    if (cont == 0) {
//          $('#modalEncuestaHeader').click(); 
        $('a#prev').addClass('hidden');
    }


}

function descripcionPregunta() {
    $validadorDescripcion = $('#pregunta' + cont).children('span.descripcion');
    if ($validadorDescripcion.hasClass('descripcion'))
    {
        $('#puff').text($validadorDescripcion.text());
        $("#puff").animate({
            left: "70%"
        }, 500);
    }
    else {
        $("#puff").animate({
            left: "90%"
        }, 500);
    }
}

function pad(number, length) {
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
    return str;
}
function formatTime(time) {
    time = time / 10;
    var min = parseInt(time / 6000),
            sec = parseInt(time / 100) - (min * 60),
            hundredths = pad(time - (sec * 100) - (min * 6000), 2);
    return (min > 0 ? pad(min, 2) : "00") + ":" + pad(sec, 2) + ":" + hundredths;
}

function maskAttributes() {
    $('input.telefono').mask('000-000000');
    $('input.celular').mask('0000000000');
    $('input.ID').mask('0000000000');
    $('input.fax').mask('000-000000');
//    $('input.numeric').mask('99');
    $('input.numeric').mask('PZ', {
        translation: {
            'Z': {pattern: /[0-1]/, optional: true},
            'P': {pattern: /[0-5]/, },
        }});
    //continuar cargando formatos para input
}


function aumentarSpanOpciones() {
    var temp;
    $('div.controls').each(function(index, value) {
        $labelsControls = $(value).children('label');
        if ($labelsControls.hasClass('checkbox')) {
            $labelsControls.each(function(indice, valor) {
                if ($(valor).children().has('label'))
                {
                    $(valor).children('label').prepend('<span class="letraOpcion">' + letras[indice] + '</span>');
                }
                if ($(valor).children().has('input.nsy_element_check')) {
                    $(valor).children('input.nsy_element_check').attr('letra', letras[indice]);
                }
            });
        }
        if ($labelsControls.hasClass('radio')) {
            $labelsControls.each(function(indice, valor) {
                if ($(valor).children().has('label'))
                {
                    $(valor).children('label').prepend('<span class="letraOpcion">' + letras[indice] + '</span>');
                }
                if ($(valor).children().has('input.nsy_element_check')) {
                    $(valor).children('input.nsy_element_check').attr('letra', letras[indice]);
                }
            });
        }
    });
}
function aumentarStarOpciones() {
    $('div.control-group').each(function(index, value) {
        $labelsControlsGroup = $(value).children('label');
        if ($labelsControls.hasClass('checkbox')) {
            $labelsControls.each(function(indice, valor) {
                if ($(valor).children().has('label'))
                {
                    $(valor).children('label').prepend('<span class="letraOpcion">' + letras[indice] + '</span>');
                }
                if ($(valor).children().has('input.nsy_element_check')) {
                    $(valor).children('input.nsy_element_check').attr('letra', letras[indice]);
                }
            });
        }

    });
}

function seleccionarOpcionTeclado(opcion) {
    var seleccionarOpcion;
    var star;
    if (opcion >= 65 && opcion <= 90)
    {
        seleccionarOpcion = opcion - 65;

        $('#pregunta' + cont).find('[letra=' + letras[seleccionarOpcion] + ']').click();

    }

    if (opcion >= 96 && opcion <= 105)
    {
        seleccionarOpcion = opcion - 96;
        if(seleccionarOpcion==0){
             star = $('#pregunta' + cont).find('[alt=10]');
        }
        else
        {
             star = $('#pregunta' + cont).find('[alt=' + seleccionarOpcion + ']');
        }
        $(star).click();
        $(star).trigger("mouseover");
    }
    
}

function cerrarSelect2Row() {
    if ($('select.selec2row').length > 0) {
        $('select.selec2row').select2('close');
        $("select.selec2row").blur()
    }
}

function quitarFocusRating(elementoDiv) {
    if ($(elementoDiv).children().children('.controls').children().hasClass('raty-icons')) {
        $(elementoDiv).children().children('.controls').children('.raty-icons').removeAttr('tabindex');
    }

}




